I. Field of the Invention
The present invention relates generally to generating spread-spectrum coding, and particularly to generating and processing Golay codes.
II. Description of the Related Art
Within UWB communications, several different types of networks, each with their own communication protocols are envisioned. For example, there are Local Area Networks (LANs), Personal Area Networks (PANs), Wireless Personal Area Networks (WPANs), sensor networks and others. Each network may have its own communication protocol.
The spectrum allocated in the United States for UWB is from 3,100 MHz to 10,600 MHz (7,500 MHz bandwidth). Wireless communication systems using UWB technology typically employ data multiplexing for allowing multiple users or devices to share access to the communication system. Some wireless communications systems are designed to support simultaneous data transmission among multiple devices and multiple groups of devices. A group or network of devices having data connection among each other is sometimes referred to as a piconet. A piconet is a logical group of two or more devices communicating with each other, without interference from other piconets. An exemplary piconet may be a DVD player with a UWB wireless link to a television display.
In UWB systems, it is often advantageous to support as many simultaneously operating piconets as possible. Multiple piconets typically require that data packets or symbols from devices on each piconet are multiplexed in a manner so data packets from one piconet are not readable to other piconets.
Widely used forms of multiplexing include frequency division multiple access (FDMA), where signals or data streams are each modulated onto unique portions of spectrum, and time division multiple access (TDMA), where data packets from different users or devices are assigned unique time slots in the same portion of spectrum.
One approach to data multiplexing in a UWB system uses code division multiple access (CDMA), a direct-sequence spread-spectrum system also used in cellular telephony, wireless LAN, and many other applications. CDMA multiplies user data to be transmitted with a unique spreading code. Each user or device is given a unique spreading code to differentiate its data stream from other users or devices. At the receiver, the original data is recovered via de-spreading with this unique code.
Code Division Multiple Access (CDMA) systems commonly suffer from multiple-access interference (MAI). When a user is assigned multiple orthogonalizing codes, signal degradation can take the form of inter-symbol interference (ISI). MAI and ISI are typically reduced by selecting orthogonalizing codes having low cross-correlations. However, in order to achieve good spreading characteristics in a DS-CDMA system, it is necessary to employ sequences having a low average mean-square aperiodic autocorrelation for non-zero lags.
In practice, decoding errors are minimized by using distinctive multiple-access codes with suitable autocorrelation and cross-correlation properties. The cross-correlation between any two codes should be low for minimal interference between multiple users in a communications system or between multiple target reflections in radar and positioning applications. At the same time, it is desirable for the autocorrelation property of a multiple-access code to be steeply peaked, with small side-lobes. Maximally peaked code autocorrelation yields optimal acquisition and synchronization properties for communications, radar, and positioning applications.
Complementary codes, first introduced by Golay, are sets of finite sequences of equal length such that the number of pairs of identical elements with any given separation in one sequence is equal to the number of pairs of unlike elements having the same separation in the other sequences.
The complementary codes first discussed by Golay were pairs of binary complementary codes. If values of +1 and −1 are elements of Golay complementary sequences, then the sum of the autocorrelation functions of two Golay complementary sequences has zero sidelobes. For a length-N code, the sum of its respective autocorrelation sequences for the zero shift is equal to K·N (K being the number of code words in the set).
Polyphase complementary codes, described in R. Sivaswamy, “Multiphase Complementary Codes,” IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. IT-24, NO. 5, Sep. 1978, are codes where each element is a complex number of unit magnitude and arbitrary phase. In the IEEE 802.11b standard, complementary code elements include the set [1,−1, j,−j].
Unfortunately, favorable autocorrelation characteristics are typically achieved at the expense of cross-correlation characteristics, and vice versa. Thus, code selection typically involves a trade-off between autocorrelation and cross-correlation performance. It is advantageous to identify sets of spreading codes with autocorrelation and cross-correlation properties that facilitate identifying different piconets in an UWB network. There is also a need in the art to provide simple transmitter and receiver structures that are configurable for a large number of codes and codes that support different data rates.